Мы посмотрим как в C# можно работать с интерфейсами. Смотрим код.
using System; interface ITest { string Test(); } class MyTest : ITest { public string Test() { return "Hello interface"; } } class MainClass { public static void Main(string[] args) { MyTest test = new MyTest(); Console.WriteLine(test.Test()); } }
Итак, интерфейс это набор абстрактных методов без реализации. Они в С# могут содержать методы, свойства и индексаторы. В нашем примере мы создали интерфейс ITest и описали в нем методы. Потом на основе этого интерфейса создали рельный класс MyTest где эти методы реализовали. А дальше использовали его в программе. В С# запрещено множественное наследование, подобные возможности должны достигаться наследование нескольких интерфейсов. Вот на такой код компилятор будет давать ошибку.
class P1 { } class P2 { } class MyTest : P1,P2, ITest Error { public string Test() { return "Hello interface"; } }
Он скажет, что P2 не интерфейс. А вот множественное наследование интерфейсов разрешено. Код приведенный ниже будет работать без ошибок.
interface ITest { string Test(); } interface IP1 { } class P2 { } class MyTest : P2,IP1, ITest { public string Test() { return "Hello interface"; } }